﻿<?php
/*
 * Autor: Adrian Lewacki
 * 
 * Strona ustawień konta użytkownika.
 * Zalogowany użytkownik ma dostęp do edycji jedynie danych własnego konta
 * Jeżeli użytkownik ma dane administracyjne może edytować konto dodolnego innego użytkownika w systemie
 * 
 */
//sprawdzic czy sprecyzowano użytkownika do edycji
if(isset($_GET['user']) && $_GET['user'] != '')
{
	$user = new Uzytkownik_class();
	$czyAdmin=$user->CzyAdmin();			//(Darek): przechowałem to w zmiennej, bo późniejsze sprawdzanie w kodzie nie zawsze się udaje
	//pobieramy dane użytkownika z bazy
	if($user->CzyAdmin())
	{
		$login = $_GET['user']; //jezeli jest adminem moze edytowac innych, dane konta pobierane sa z adresu
	}
	else
	{
		$login = $_SESSION['login']; //w przeciwnym wypadku zostanie wyswietlona strona z danymi zalogowanego
	}
	
	$db = new DB_class();
	$db->connect();
	$login = $db->filtruj($login);
	$db->query("SELECT `email`, `id_osoba`, `haslo`, `administrator`, `aktywny` FROM `uzytkownik` WHERE `login` = '{$login}' LIMIT 1");
	if($db->countRows()>0)
	{
		$data = $db->loadRows();
			$email =  $data[0]['email'];
			$id_osoba = $data[0]['id_osoba'];
			$haslo = $data[0]['haslo'];
			$administrator = $data[0]['administrator'];
			$aktywny = $data[0]['aktywny'];
	}
	else
	{
		$id_osoba = -1;
		$email = (isset($email))? $email: '';
		$haslo = (isset($haslo))? $haslo: '';
		$administrator = (isset($administrator))? $administrator: 0;
		echo '<p class="blad">Taki użytkownik nie istnieje.</p>';
		exit;
	}

	$db->query("SELECT `imie`, `nazwisko`, `data_urodzenia`, `plec`, `nazwisko_panienskie`  FROM `osoba` WHERE `id_osoba` = '{$id_osoba}' LIMIT 1");
	if($db->countRows()>0)
	{
		$data = $db->loadRows();
			$imie = $data[0]['imie'];
			$nazwisko = $data[0]['nazwisko'];
			$plec = $data[0]['plec'];
			//$data_urodzenia = $data[0]['data_urodzenia'];
			$data_urodzenia =  new DateTime($data[0]['data_urodzenia']);
			$nazwisko_panienskie = $data[0]['nazwisko_panienskie'];
	}
	else
	{
		$imie = (isset($imie))? $imie: '';
		$nazwisko = (isset($nazwisko))? $nazwisko: '';
		$plec = (isset($plec))? $plec: '';
		$data_urodzenia = (isset($data_urodzenia))? $data_urodzenia: time();
		$nazwisko_panienskie = (isset($nazwisko_panienskie))? $nazwisko_panienskie: '';
	}
	//---------------------------------
	//		aktualizacja hasla
	//---------------------------------
	if(isset($_POST['zmien_haslo']))
	{
		$formularz_poprawny = true;
		if(isset($_POST['haslo']))
		{
			//sprawdzic czy zna stare haslo
			$sprawdz_haslo_czy_zna_haslo = $db->filtruj($_POST['haslo']);
			$sprawdz_haslo_czy_zna_haslo = $db->koduj_dane($_POST['haslo']);
			if($haslo != $sprawdz_haslo_czy_zna_haslo)
			{
				$formularz_poprawny = false;
				echo '<p class="blad">Wpisz poprawnie aktualne hasło.</p>';
				unset($_POST['haslo']);
			}
			else
			{
				//sprawdzic czy nowe haslo jest ustawione i ma odpowiednia dlugosc
				if(!isset($_POST['nowe_haslo']) || strlen($_POST['nowe_haslo'])<=3)
				{
					$formularz_poprawny = false;
					echo '<p class="blad">Haslo powinno składać się z co najmniej 6 znaków.</p>';
				}
				else
				{
					//sprawdzic czy haslo zgadza sie z potwierdzeniem
					if(($_POST['nowe_haslo']) != ($_POST['nowe_haslo2']))
					{
						$formularz_poprawny = false;
						echo '<p class="blad">Pdane hasła się różnią.</p>';
					}
					else
					{
						if($formularz_poprawny)
						{
							$nowe_haslo = $db->filtruj($_POST['nowe_haslo']);
							$nowe_haslo = $db->koduj_dane($nowe_haslo);
							$db->query("UPDATE `uzytkownik` SET `haslo` = '{$nowe_haslo}' WHERE `id_osoba`= '{$id_osoba}'");
							if($db->countRows(false)>0)
							{
								echo '<p class="sukces">Zmieniono haslo!</p>';
								unset($_POST['nowe_haslo2']);
								unset($_POST['nowe_haslo']);
								unset($_POST['haslo']);
							}
						}
					}
				}
			}
		}
	}
	//------------------------------------------
	//		aktualizacja avatara
	//------------------------------------------
	if(isset($_POST['zaladuj_zdjecie']))
	{	include 'klasy/zn.php';
		$zdjecie = new zapis_plikow();
		$zdjecie->zapisz($id_osoba);
	}
	//------------------------------------------
	//		aktualizacja danych personalnych
	//------------------------------------------
	if(isset($_POST['zmien_dane_konta']))
	{
		$formularz_poprawny = true;
		//email
		//sprawdzic pole email
		//sprawdzic czy ustawione i ma odpowiednia dlugosc
		if(!isset($_POST['email']) || strlen($_POST['email'])<7)
		{
			$formularz_poprawny = false;
			echo '<p class="blad">Należy wpisać adres e-mail.</p>';
		}
		else
		{
			//sprawdzanie poprawnosci adresu email
			//moze zamienic na regex?
			if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
			{
				$formularz_poprawny = false;
				echo '<p class="blad">Podany adres email jest nieprawidłowy!</p>';
			}
			else
			{
				//sprawdzamy czy email nie jest już używany
				$email = $db->filtruj($_POST['email']);
				$db->query("SELECT `email` FROM `uzytkownik` WHERE `email` = '{$email}' LIMIT 1");
				if($db->countRows()>0)
				{
					$email_aktualny = $db->loadRows();
					$email_aktualny = $email_aktualny[0]['email'];
					if($email_aktualny != $email)
					{
						$formularz_poprawny = false;
						echo '<p class="blad">Podany adres email jest już używany</p>';
					}
				}
				else
				{
					//sprawdzic czy email zgadza sie z potwierdzeniem emaila
					if(($_POST['email']) != ($_POST['email2']))
					{
						$formularz_poprawny = false;
						echo '<p class="blad">Adresy e-mail się różnią.</p>';
					}
				}
			}
		}
				
		//sprawdzic pole imie
		//sprawdzic czy ustawione i ma odpowiednia dlugosc
		if(!isset($_POST['imie']) || strlen($_POST['imie'])<1)
		{
			$formularz_poprawny = false;
			echo '<p class="blad">Należy wpisać imię.</p>';
		}
		
		//sprawdzic pole nazwisko
		//sprawdzic czy ustawione i ma odpowiednia dlugosc
		if(!isset($_POST['nazwisko']) || strlen($_POST['nazwisko'])<1)
		{
			$formularz_poprawny = false;
			echo '<p class="blad">Należy wpisać nazwisko.</p>';
		}
		
		if($formularz_poprawny)
		{
			$nowe_imie = $db->filtruj($_POST['imie']);
			$nowe_nazwisko = $db->filtruj($_POST['nazwisko']);
			$nowe_nazwisko_panienskie = $db->filtruj($_POST['nazwisko_panienskie']);
			$nowy_email = $db->filtruj($_POST['email']);
			if(isset($_POST['plec'])) $plec = $_POST['plec'];
			if(isset($_POST['aktywny'])) $aktywny = $_POST['aktywny'];
			if(isset($_POST['administrator'])) $administrator = $_POST['administrator'];
			$dzien = (isset($_POST['dzien_urodzenia']))?$_POST['dzien_urodzenia']:0;
			$miesiac = (isset($_POST['miesiac_urodzenia']))?$_POST['miesiac_urodzenia']:0;
			$rok = (isset($_POST['rok_urodzenia']))? $_POST['rok_urodzenia']:0;
			$godziny = 0;
			$minuty = 0;
			$sekundy = 0;
			//$data_urodzenia = mktime($godziny, $minuty, $sekundy, $miesiac, $dzien, $rok);
			if($czyAdmin)			//jeśli administrator to może zmienić płeć i datę urodzenia
			{
				$data_urodzenia =  $dzien .'-'.$miesiac.'-'.$rok;
				$data_urodzenia =  new DateTime($data_urodzenia);
				$data_urodzenia = date_format($data_urodzenia, 'Y-m-d');
				$zapytanie="UPDATE `osoba` SET `imie` = '{$nowe_imie}', `nazwisko` = '{$nowe_nazwisko}', `plec` = '{$plec}',`nazwisko_panienskie` = '{$nowe_nazwisko_panienskie}', `data_urodzenia` ='{$data_urodzenia}' WHERE `id_osoba`= '{$id_osoba}'";
			}
			else 							//jeśli zwykły użytkownik to nie może zmienić płci i daty urodzenia
				$zapytanie="UPDATE `osoba` SET `imie` = '{$nowe_imie}', `nazwisko` = '{$nowe_nazwisko}',`nazwisko_panienskie` = '{$nowe_nazwisko_panienskie}' WHERE `id_osoba`= '{$id_osoba}'";
			$db->query($zapytanie);
			if($db->countRows(false)>0)
			{
				echo '<p class="sukces">Zmieniono dane konta!</p>';
			}	
			
			$db->query("UPDATE `uzytkownik` SET `email` = '{$nowy_email}' WHERE `id_osoba`= '{$id_osoba}'");
			if($db->countRows(false)>0)
			{
				echo '<p class="sukces">Zmieniono adres e-mail!</p>';
			}
			
			if($czyAdmin)			//tylko administrator ma prawo zmienić wartości "aktywny" i "administrator"
			{
				$db->query("UPDATE `uzytkownik` SET `aktywny` = '{$aktywny}', `administrator` = '{$administrator}' WHERE `id_osoba`= '{$id_osoba}'");
				if($db->countRows(false)>0)
				{
					echo '<p class="sukces">Zmieniono uprawnienia konta!</p>';
				}
			}
		}	
	}

?>
<!-- panale administracyjny uzytkownika -->
<h1>Dane użytkownika</h1>
			<div class="table-bordered left" ><div id="account_detalils_form">
				<form method="post" action="?user=<?php echo $_GET['user'];?>">
				<fieldset>
					<legend>Dane logowania</legend>
					<label>Login</label><input type="text" disabled="disabled" name="login" 
					value="<?php echo (isset($_POST['login']))? $_POST['login']:$login;?>" placeholder="Login"/>

					<label>Hasło*</label><input  type="password" name="haslo" 
					value="<?php echo (isset($_POST['haslo']))? $_POST['haslo']:'';?>" placeholder="Hasło"/>					
					
					<label>Nowe hasło*</label><input  type="password" name="nowe_haslo" 
					value="<?php echo (isset($_POST['nowe_haslo']))? $_POST['nowe_haslo']:'';?>" placeholder="Nowe hasło"/>
					
					<label>Powtórz nowe hasło*</label><input  type="password" name="nowe_haslo2" 
					value="<?php echo (isset($_POST['nowe_haslo2']))? $_POST['nowe_haslo2']:'';?>" placeholder="Powtórz nowe hasło"/>
				</fieldset>
				<input type="submit" name="zmien_haslo" value="Zmień hasło" />
				</form>
			</div><div id="duzyprzycisk"><a class="duzyprzycisk" href="?wezly&uz=<?php echo $_GET['user'];?>">Elementy drzewa</a></div></div>
			<div id="account_detalils_form" class="table-bordered right" >
				
				<!--/////////////////////////////////////////////////////////////////-->
				<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data"  method="POST" action="?user=<?php echo $_GET['user'];?>">
	<fieldset>
		<legend>Zdjęcie</legend>
					<?php 
					$sciezka = 'obrazki/'. $id_osoba .'.jpeg';
						if(file_exists($sciezka))
							echo '<img width ="100px" height="100px" src="'.$sciezka .'"/>';
						else
							echo '<img src="obrazki/miniaturka.png"/>';
					?>
		<!-- MAX_FILE_SIZE must precede the file input field -->
		<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
		<!-- Name of input element determines name in $_FILES array -->
		<label>Załaduj zdjęcie: </label><input name="plik" type="file" />
		<input type="submit" name="zaladuj_zdjecie" value="Załaduj zdjęcie"/>
	</fieldset>
</form>
					
					<!--/////////////////////////////////////////////////////////////////-->
				<form method="post" action="?user=<?php echo $_GET['user'];?>">
				<fieldset>
					<legend>Dane konta</legend>
					<?php 
						if($user->CzyAdmin())
						{
							echo $administrator ? '<p>Administrator!</p>' : '<p>Zwykły użytkownik</p>';
							//checkbox do zmiany roli
					?>	
					<p>Rola
						<label for="administratora">Administrator</label><input id="administratora" type="radio" name="administrator" 
							<?php 
									if(isset($_POST['administrator']))
										echo ($_POST['administrator'] == 1)? 'checked':'';
									else
										echo ($administrator == 1)?'checked':'';
							?> value="1"/>
						<label for="administratorz">Zwykły użytkownik</label><input id="administratorz" type="radio" name="administrator"
							<?php 
									if(isset($_POST['administrator']))
										echo ($_POST['administrator'] == 0)? 'checked':'';
									else
										echo ($administrator == 0)?'checked':'';
							?> value="0"/>
					</p>
					<p>Aktywne
						<label for="aktywnyt">Tak</label><input id="aktywnyt" type="radio" name="aktywny" 
							<?php 
									if(isset($_POST['aktywny']))
										echo ($_POST['aktywny'] == 1)? 'checked':'';
									else
										echo ($aktywny == 1)?'checked':'';
							?> value="1"/>
						<label for="aktywnyn">Nie</label><input id="aktywnyn" type="radio" name="aktywny"
							<?php 
									if(isset($_POST['aktywny']))
										echo ($_POST['aktywny'] == 0)? 'checked':'';
									else
										echo ($aktywny == 0)?'checked':'';
							?> value="0"/>
					</p>		
					<?php
						}//
					?>
					<label>e-mail*</label><input type="text" name="email" 
					value="<?php echo (isset($_POST['email']))? $_POST['email']:$email;?>" placeholder="e-mail"/>	
					
					<label>Powtórz e-mail* (tylko jeżeli zmieniasz)</label><input type="text" name="email2" 
					value="<?php echo (isset($_POST['email2']))? $_POST['email2']:'';?>" placeholder="Powtórz e-mail"/>			
				
					<label>Imię*</label><input type="text" name="imie" 
					value="<?php echo (isset($_POST['imie']))? $_POST['imie']:$imie;?>" placeholder="Imię"/>					
					
					<label>Nazwisko*</label><input type="text" name="nazwisko" 
					value="<?php echo (isset($_POST['nazwisko']))? $_POST['nazwisko']:$nazwisko;?>" placeholder="Nazwisko"/>
					<p>Płeć*
						<label for="pleck">Kobieta</label><input class="toggler" id="pleck" type="radio" name="plec" 
						<?php 
						if(!$user->CzyAdmin())
							echo 'disabled="disabled"'; else echo '';
						?>
							<?php 
									if(isset($_POST['plec']))
										echo ($_POST['plec'] == 0)? 'checked':'';
									else
										echo ($plec == 0)?'checked':'';
							?> value="0"/>
						<label for="plecm">Mężczyzna</label><input class="toggler" id="plecm" type="radio" name="plec"
						<?php 
						if(!$user->CzyAdmin())
							echo 'disabled="disabled"'; else echo '';
						?>
							<?php 
									if(isset($_POST['plec']))
										echo ($_POST['plec'] == 1)? 'checked':'';
									else
										echo ($plec == 1)?'checked':'';
							?> value="1"/>
					</p>
					<?php 
						//dodac sprawdzanie jq i wyswietlac w zaleznosci od wybranej plci
					?>
					<div id="plec"><label>Nazwisko panieńskie</label><input type="text" name="nazwisko_panienskie" 
					value="<?php echo (isset($_POST['nazwisko_panienskie']))? $_POST['nazwisko_panienskie']:$nazwisko_panienskie;?>" placeholder="Nazwisko panieńskie"/></div>

					<label>Data urodzenia*</label>
					<p>
						Dzień
						<select name="dzien_urodzenia"						
						<?php if(!$user->CzyAdmin())
							echo 'disabled="disabled">'; else echo '>';
						?>							
							<?php 
								$d_ur = date_format($data_urodzenia, 'd');
								for ($i=1; $i<=31; $i++)
								{
									if(isset($_POST['dzien_urodzenia']))
									{
										if($_POST['dzien_urodzenia'] == $i)
											echo '<option selected="selected" value="'.$i.'">'.$i.'</option>';
										else
											echo '<option value="'.$i.'">'.$i.'</option>';
									}
									//elseif(date('j',$data_urodzenia) == $i)
									elseif($d_ur == $i)
										echo '<option selected="selected" value="'.$i.'">'.$i.'</option>';
									else
										echo '<option value="'.$i.'">'.$i.'</option>';
								}
							?>
						</select> 
						Miesiąc
						<select name="miesiac_urodzenia"
						<?php if(!$user->CzyAdmin())
							echo 'disabled="disabled">'; else echo '>';
						?>	
							<?php 
								$m_ur = date_format($data_urodzenia, 'm');
								for ($i=1; $i<=12; $i++)
								{
									if(isset($_POST['miesiac_urodzenia']))
									{
										if($_POST['miesiac_urodzenia'] == $i)
											echo '<option selected="selected" value="'.$i.'">'.$i.'</option>';
										else
											echo '<option value="'.$i.'">'.$i.'</option>';
									}
									elseif($m_ur == $i)
										echo '<option selected="selected" value="'.$i.'">'.$i.'</option>';
									else
										echo '<option value="'.$i.'">'.$i.'</option>';
								}
							?>
						</select> 
						Rok
						<select name="rok_urodzenia"
						<?php if(!$user->CzyAdmin())
							echo 'disabled="disabled">'; else echo '>';
						?>
							<?php 
								$r_ur = date_format($data_urodzenia, 'Y');
								for ($i=2012; $i>=1900; $i--)
								{
								
									if(isset($_POST['rok_urodzenia']))
									{
										if($_POST['rok_urodzenia'] == $i)
											echo '<option selected="selected" value="'.$i.'">'.$i.'</option>';
										else
											echo '<option value="'.$i.'">'.$i.'</option>';
									}
									elseif($r_ur == $i)
										echo '<option selected="selected" value="'.$i.'">'.$i.'</option>';
									else
										echo '<option value="'.$i.'">'.$i.'</option>';
								}
							?>
						</select>
					</p>
				</fieldset>
					<input type="submit" name="zmien_dane_konta" value="Zaktualizuj dane" />
				</form>
			</div>
			<div class="clear"></div>
<?php
}//koniec sprawdzania GET['user']
else
	echo '<p class="blad">Nie sprecyzowano użytkownika!</p>';
?>